package Controlador;

import Vista.VistadeEstudiante ;
import Controlador.ControlMenu;
import Modelo.Estudiante;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.util.Vector;

import javax.swing.*;

import Modelo.Seccion;

public class ControlEstudiante extends WindowAdapter implements ActionListener {
	private VistadeEstudiante vista;
	private ControlMenu n= new ControlMenu();
	private Seccion Seccion = new Seccion();
	//public String Cedula;
	private Vector<Estudiante> Listado_estudiante= new Vector<Estudiante>();
	public ControlEstudiante(VistadeEstudiante vista) {
		this.vista = vista;
		
	}
	
	public void actionPerformed(ActionEvent e){
		
		if(e.getActionCommand()=="Ingresar")
			IngresarEstudiante();
	    else if(e.getActionCommand()=="Limpiar")
			vista.limpiar();
	    else if(e.getActionCommand()=="Retirar")
			try {
				RetirarEstudiante();
			} catch (IOException e2)
			{
				e2.printStackTrace();
			}
		else if(e.getActionCommand()=="Cancelar")
			vista.dispose();
		else if(e.getActionCommand()=="Buscar")
			try {
				BuscarEstudiante();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
		
	    public void RetirarEstudiante() throws IOException{
	    	String Cedula = vista.getTxtCedula();
	    	Seccion.RetirarunEstudiante(Cedula) ;//ojo se quito el parametro
	    	
	    }
 //public void InscribirunEstudiante() throws IOException{
	    //String Cedula= vista.getTxtCedula();
	   // Seccion.InscribirunEstudiante(String cedula,String nombre,String apellido);
// }
	     
	
	
	
    
	public void windowClosing(WindowEvent e){
		vista.dispose();
	}
	
	

        public boolean validar(){
            boolean valida = false;
            if ((vista.getTxtNombre().equals("")) || (vista.getTxtCedula().equals("")) || (vista.getTxtApellido1().equals("")) )
                valida=false;
            else
                valida=true;
       
            return valida;
    }
        
     
        public  void BuscarEstudiante() throws IOException{
        	Estudiante est=new Estudiante();
    		String ced = vista.getTxtCedula();
    		boolean encontrado = Seccion.buscar(ced);
    		if (encontrado==false)
    			JOptionPane.showMessageDialog(new JFrame(),"El estudiante no esta inscrito en la seccion","Notificación",
    					JOptionPane.INFORMATION_MESSAGE);
    		else{
    			est=Seccion.BuscarunEstudiante(vista.getTxtCedula());
				vista.setTxtCedula(est.getCedula());
    			vista.setTxtNombre(est.getNombre());
    			vista.setTxtApellido1(est.getApellido());
    		}
    	};
    	public void IngresarEstudiante(){
    		boolean vericed = true, verinom = true, veriape = true, verificar=true;
    		String cedula, nombre, apellido; 
    		Estudiante est = new Estudiante(vista.getTxtCedula(),  vista.getTxtNombre(), vista.getTxtApellido1());
    		cedula = vista.getTxtCedula();
    		vericed=Seccion.ValidarNros(cedula);
    		nombre = vista.getTxtNombre();
    		verinom=Seccion.ValidarLetras(nombre);
    		apellido = vista.getTxtApellido1();
    		veriape=Seccion.ValidarLetras(apellido);
    		
                    if (validar() == false){
    			JOptionPane.showMessageDialog(new JFrame(),"Los Campos con * no pueden estar vacios","Error",
    					JOptionPane.INFORMATION_MESSAGE);
    					verificar=false;
                    }
                    
                   	if(vericed=Seccion.ValidarNros(cedula)==false){
           				 JOptionPane.showMessageDialog(new JFrame(),"Solo debe escribir numeros en el campo cedula como caracteres validos","Error",
           							JOptionPane.INFORMATION_MESSAGE);
           				verificar=false;
                   	}
                 boolean  encontrado = Seccion.buscar(cedula);
                  	 if (encontrado == true){
          				 JOptionPane.showMessageDialog(new JFrame(),"El estudiante ya esta inscrito","Error",
          							JOptionPane.INFORMATION_MESSAGE);
           			verificar=false;
                    } 
                   	
                    if(verinom=Seccion.ValidarLetras(nombre)==false){
       				 JOptionPane.showMessageDialog(new JFrame(),"Solo debe escribir letras en el campo nombre como caracteres validos","Error",
       							JOptionPane.INFORMATION_MESSAGE);
       				verificar=false;
                    }
                    
                    if(veriape=Seccion.ValidarLetras(apellido)==false){
       				 JOptionPane.showMessageDialog(new JFrame(),"Solo debe escribir letras en el campo apellido como caracteres validos","Error",
       							JOptionPane.INFORMATION_MESSAGE);
       				verificar=false;
                    }
                        
    		 if(verificar==true) {
                    	est.setCedula(vista.getTxtCedula());
                        est.setNombre(vista.getTxtNombre());
                        est.setApellido(vista.getTxtApellido1());
                        try {
        					Seccion.InscribirunEstudiante(est.getCedula(),est.getNombre(),est.getApellido());
        					//(est.getCedula(), est.getNombre(), est.getApellido());
        				} catch (IOException e) {
        					e.printStackTrace();
        				}
                            vista.limpiar();
                        JOptionPane.showMessageDialog(new JFrame(),"Registro agregado exitosamente","Ingresos",JOptionPane.INFORMATION_MESSAGE);
                        }

    }
    	
       
    }
    		
     
    
	